// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.model.purchase.plans;

import com.fowo.api.common.annotaion.DataObjectType;
import com.fowo.api.common.meta.MetaDataObject;
import com.fowo.api.common.meta.MetaDataObjects;
import com.fowo.api.common.model.PageSearch;
import com.fowo.api.common.mybatis.helper.PageSearchHelper;
import com.fowo.api.common.util.ListUtils;
import com.fowo.api.entity.PurchasePlans;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

@DataObjectType(PurchasePlans.class)
@Setter
@Getter
public class PurchasePlansSearchParamPo extends PageSearch {

  private static MetaDataObject metaDataObject;

  @Override
  public void applySqlSegments() {
    if (metaDataObject == null) {
      metaDataObject =
        ListUtils.find(
          MetaDataObjects.getObjects(),
          o -> "PurchasePlans".equals(o.getName())
        );
    }
    PageSearchHelper.fillSqlSegments(this, metaDataObject);
  }

  @Override
  public void initFinal() {
    super.initFinal();
    applySqlSegments();
  }

  /**
   * 获取关联字段的查询表别名信息
   */
  @Override
  public Map<String, String> getJoinFieldTableAliasMap() {
    Map<String, String> map = new HashMap<>();
    map.put("country", "sr");
    map.put("shop", "si");
    map.put("supply", "s");
    map.put("createName", "su");
    map.put("purchaseWare", "po");
    return map;
  }

  @Override
  public Map<String, OptionalJoinField> getOptionalJoinFields() {
    Map<String, OptionalJoinField> map = new HashMap<>();
    map.put(
      "procurementPlan.wid",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN purchase_plans_product AS RO_1 ON RO_1.del_flag = 0 AND RO_1.parent_purchase_plans = t.id"
        )
        .setTableAlias("RO_1")
        .setColumnName("wid")
        .setNeedGroupBy(true)
    );
    map.put(
      "procurementPlan.planSn",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN purchase_plans_product AS RO_2 ON RO_2.del_flag = 0 AND RO_2.parent_purchase_plans = t.id"
        )
        .setTableAlias("RO_2")
        .setColumnName("plan_sn")
        .setNeedGroupBy(true)
    );
    map.put(
      "procurementPlan.product",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN purchase_plans_product AS RO_3 ON RO_3.del_flag = 0 AND RO_3.parent_purchase_plans = t.id"
        )
        .setTableAlias("RO_3")
        .setColumnName("product")
        .setNeedGroupBy(true)
    );
    map.put(
      "procurementPlan.sku",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN purchase_plans_product AS RO_4 ON RO_4.del_flag = 0 AND RO_4.parent_purchase_plans = t.id"
        )
        .setTableAlias("RO_4")
        .setColumnName("sku")
        .setNeedGroupBy(true)
    );
    map.put(
      "procurementPlan.fnsku",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN purchase_plans_product AS RO_5 ON RO_5.del_flag = 0 AND RO_5.parent_purchase_plans = t.id"
        )
        .setTableAlias("RO_5")
        .setColumnName("fnsku")
        .setNeedGroupBy(true)
    );
    map.put(
      "purchaseWare.purSear",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN purchase_order AS RO_6 ON RO_6.del_flag = 0 AND RO_6.id = t.purchase_ware"
        )
        .setTableAlias("RO_6")
        .setColumnName("pur_sear")
    );
    map.put(
      "purchaseWare.purNumSear",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN purchase_order AS RO_7 ON RO_7.del_flag = 0 AND RO_7.id = t.purchase_ware"
        )
        .setTableAlias("RO_7")
        .setColumnName("pur_num_sear")
    );
    map.put(
      "purchaseWare.purchaser",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN purchase_order AS RO_8 ON RO_8.del_flag = 0 AND RO_8.id = t.purchase_ware"
        )
        .setTableAlias("RO_8")
        .setColumnName("purchaser")
    );
    map.put(
      "procurementPlan.product.name",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN product AS RO_9 ON RO_9.del_flag = 0 AND RO_9.id = RO_3.product"
        )
        .setTableAlias("RO_9")
        .setColumnName("name")
        .setDepends(Collections.singletonList("procurementPlan.product"))
    );
    map.put(
      "procurementPlan.product.spu",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN product AS RO_10 ON RO_10.del_flag = 0 AND RO_10.id = RO_3.product"
        )
        .setTableAlias("RO_10")
        .setColumnName("spu")
        .setDepends(Collections.singletonList("procurementPlan.product"))
    );
    map.put(
      "procurementPlan.product.spuName",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN product AS RO_11 ON RO_11.del_flag = 0 AND RO_11.id = RO_3.product"
        )
        .setTableAlias("RO_11")
        .setColumnName("spu_name")
        .setDepends(Collections.singletonList("procurementPlan.product"))
    );
    map.put(
      "procurementPlan.remark",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN purchase_plans_product AS RO_12 ON RO_12.del_flag = 0 AND RO_12.parent_purchase_plans = t.id"
        )
        .setTableAlias("RO_12")
        .setColumnName("remark")
        .setNeedGroupBy(true)
    );
    map.put(
      "purchaseWare.purchaseOrderCode",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN purchase_order AS RO_13 ON RO_13.del_flag = 0 AND RO_13.id = t.purchase_ware"
        )
        .setTableAlias("RO_13")
        .setColumnName("purchase_order_code")
    );
    map.put(
      "purchaseWare.optUid",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN purchase_order AS RO_14 ON RO_14.del_flag = 0 AND RO_14.id = t.purchase_ware"
        )
        .setTableAlias("RO_14")
        .setColumnName("opt_uid")
    );

    return map;
  }

  private Long procurementPlan_wid;
  private List<String> procurementPlan_widInList;
  private String procurementPlan_planSn;
  private List<String> procurementPlan_planSnInList;
  private Long procurementPlan_product;
  private List<String> procurementPlan_productInList;
  private String procurementPlan_sku;
  private List<String> procurementPlan_skuInList;
  private Long procurementPlan_fnsku;
  private List<String> procurementPlan_fnskuInList;
  private String purchaseWare_purSear;
  private List<String> purchaseWare_purSearInList;
  private String purchaseWare_purNumSear;
  private List<String> purchaseWare_purNumSearInList;
  private Long purchaseWare_purchaser;
  private List<String> purchaseWare_purchaserInList;
  private String procurementPlan_product_name;
  private List<String> procurementPlan_product_nameInList;
  private String procurementPlan_product_spu;
  private List<String> procurementPlan_product_spuInList;
  private String procurementPlan_product_spuName;
  private List<String> procurementPlan_product_spuNameInList;
  private String procurementPlan_remark;
  private List<String> procurementPlan_remarkInList;
  private String purchaseWare_purchaseOrderCode;
  private List<String> purchaseWare_purchaseOrderCodeInList;
  private Long purchaseWare_optUid;
  private List<String> purchaseWare_optUidInList;

  /**
   * 指定使用特定的视图过滤条件
   * <p>
   * 有效值包括：PurchasePlans/Complete, PurchasePlans/WaitingSubm, PurchasePlans/Theapprovalispending, PurchasePlans/Tobepurchased, PurchasePlans/Completed, PurchasePlans/Rejected, PurchasePlans/Havebeenvoided
   * </p>
   */
  private String byViewName;

  /**
   * 编号
   */
  private Long id;

  /**
   * 最小编号
   */
  private Long idMin;

  /**
   * 最大编号
   */
  private Long idMax;

  /**
   * 编号 比较(eq)
   */
  private Long idEq;
  /**
   * 编号 比较(neq)
   */
  private Long idNeq;
  /**
   * 编号 比较(gt)
   */
  private Long idGt;
  /**
   * 编号 比较(gte)
   */
  private Long idGte;
  /**
   * 编号 比较(lt)
   */
  private Long idLt;
  /**
   * 编号 比较(lte)
   */
  private Long idLte;
  /**
   * 编号 比较(contains)
   */
  private Long idContains;
  /**
   * 编号 比较(notcontains)
   */
  private Long idNotcontains;
  /**
   * 编号 比较(startswith)
   */
  private Long idStartswith;
  /**
   * 编号 比较(endswith)
   */
  private Long idEndswith;
  /**
   * 编号 比较(isnull)
   */
  private Boolean idIsnull;
  /**
   * 编号 比较(isnotnull)
   */
  private Boolean idIsnotnull;

  /**
   * 创建批次号(模糊搜索)
   */
  private String ppgSn;

  /**
   * 创建批次号 比较(eq)
   */
  private String ppgSnEq;
  /**
   * 创建批次号 比较(neq)
   */
  private String ppgSnNeq;
  /**
   * 创建批次号 比较(gt)
   */
  private String ppgSnGt;
  /**
   * 创建批次号 比较(gte)
   */
  private String ppgSnGte;
  /**
   * 创建批次号 比较(lt)
   */
  private String ppgSnLt;
  /**
   * 创建批次号 比较(lte)
   */
  private String ppgSnLte;
  /**
   * 创建批次号 比较(contains)
   */
  private String ppgSnContains;
  /**
   * 创建批次号 比较(notcontains)
   */
  private String ppgSnNotcontains;
  /**
   * 创建批次号 比较(startswith)
   */
  private String ppgSnStartswith;
  /**
   * 创建批次号 比较(endswith)
   */
  private String ppgSnEndswith;
  /**
   * 创建批次号 比较(isnull)
   */
  private Boolean ppgSnIsnull;
  /**
   * 创建批次号 比较(isnotnull)
   */
  private Boolean ppgSnIsnotnull;

  /**
   * 创建批次号(精确搜索)
   */
  private List<String> ppgSnInList;

  /**
   * 创建人
   */
  private Long createUser;

  /**
   * 最小创建人
   */
  private Long createUserMin;

  /**
   * 最大创建人
   */
  private Long createUserMax;

  /**
   * 创建人 比较(eq)
   */
  private Long createUserEq;
  /**
   * 创建人 比较(neq)
   */
  private Long createUserNeq;
  /**
   * 创建人 比较(gt)
   */
  private Long createUserGt;
  /**
   * 创建人 比较(gte)
   */
  private Long createUserGte;
  /**
   * 创建人 比较(lt)
   */
  private Long createUserLt;
  /**
   * 创建人 比较(lte)
   */
  private Long createUserLte;
  /**
   * 创建人 比较(contains)
   */
  private Long createUserContains;
  /**
   * 创建人 比较(notcontains)
   */
  private Long createUserNotcontains;
  /**
   * 创建人 比较(startswith)
   */
  private Long createUserStartswith;
  /**
   * 创建人 比较(endswith)
   */
  private Long createUserEndswith;
  /**
   * 创建人 比较(isnull)
   */
  private Boolean createUserIsnull;
  /**
   * 创建人 比较(isnotnull)
   */
  private Boolean createUserIsnotnull;

  /**
   * 最早创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeStart;

  /**
   * 最晚创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeEnd;

  /**
   * 创建时间 比较(eq)
   */
  private Date createTimeEq;
  /**
   * 创建时间 比较(neq)
   */
  private Date createTimeNeq;
  /**
   * 创建时间 比较(gt)
   */
  private Date createTimeGt;
  /**
   * 创建时间 比较(gte)
   */
  private Date createTimeGte;
  /**
   * 创建时间 比较(lt)
   */
  private Date createTimeLt;
  /**
   * 创建时间 比较(lte)
   */
  private Date createTimeLte;
  /**
   * 创建时间 比较(contains)
   */
  private Date createTimeContains;
  /**
   * 创建时间 比较(notcontains)
   */
  private Date createTimeNotcontains;
  /**
   * 创建时间 比较(startswith)
   */
  private Date createTimeStartswith;
  /**
   * 创建时间 比较(endswith)
   */
  private Date createTimeEndswith;
  /**
   * 创建时间 比较(isnull)
   */
  private Boolean createTimeIsnull;
  /**
   * 创建时间 比较(isnotnull)
   */
  private Boolean createTimeIsnotnull;

  /**
   * 批次备注(模糊搜索)
   */
  private String remark;

  /**
   * 批次备注 比较(eq)
   */
  private String remarkEq;
  /**
   * 批次备注 比较(neq)
   */
  private String remarkNeq;
  /**
   * 批次备注 比较(gt)
   */
  private String remarkGt;
  /**
   * 批次备注 比较(gte)
   */
  private String remarkGte;
  /**
   * 批次备注 比较(lt)
   */
  private String remarkLt;
  /**
   * 批次备注 比较(lte)
   */
  private String remarkLte;
  /**
   * 批次备注 比较(contains)
   */
  private String remarkContains;
  /**
   * 批次备注 比较(notcontains)
   */
  private String remarkNotcontains;
  /**
   * 批次备注 比较(startswith)
   */
  private String remarkStartswith;
  /**
   * 批次备注 比较(endswith)
   */
  private String remarkEndswith;
  /**
   * 批次备注 比较(isnull)
   */
  private Boolean remarkIsnull;
  /**
   * 批次备注 比较(isnotnull)
   */
  private Boolean remarkIsnotnull;

  /**
   * 批次备注(精确搜索)
   */
  private List<String> remarkInList;

  /**
   * 全部国家
   */
  private Long country;

  /**
   * 全部国家 比较(eq)
   */
  private Long countryEq;
  /**
   * 全部国家 比较(neq)
   */
  private Long countryNeq;
  /**
   * 全部国家 比较(gt)
   */
  private Long countryGt;
  /**
   * 全部国家 比较(gte)
   */
  private Long countryGte;
  /**
   * 全部国家 比较(lt)
   */
  private Long countryLt;
  /**
   * 全部国家 比较(lte)
   */
  private Long countryLte;
  /**
   * 全部国家 比较(contains)
   */
  private Long countryContains;
  /**
   * 全部国家 比较(notcontains)
   */
  private Long countryNotcontains;
  /**
   * 全部国家 比较(startswith)
   */
  private Long countryStartswith;
  /**
   * 全部国家 比较(endswith)
   */
  private Long countryEndswith;
  /**
   * 全部国家 比较(isnull)
   */
  private Boolean countryIsnull;
  /**
   * 全部国家 比较(isnotnull)
   */
  private Boolean countryIsnotnull;
  /**
   * 全部国家的名称 比较(eq)
   */
  private String countryNameEq;
  /**
   * 全部国家的名称 比较(neq)
   */
  private String countryNameNeq;
  /**
   * 全部国家的名称 比较(gt)
   */
  private String countryNameGt;
  /**
   * 全部国家的名称 比较(gte)
   */
  private String countryNameGte;
  /**
   * 全部国家的名称 比较(lt)
   */
  private String countryNameLt;
  /**
   * 全部国家的名称 比较(lte)
   */
  private String countryNameLte;
  /**
   * 全部国家的名称 比较(contains)
   */
  private String countryNameContains;
  /**
   * 全部国家的名称 比较(notcontains)
   */
  private String countryNameNotcontains;
  /**
   * 全部国家的名称 比较(startswith)
   */
  private String countryNameStartswith;
  /**
   * 全部国家的名称 比较(endswith)
   */
  private String countryNameEndswith;
  /**
   * 全部国家的名称 比较(isnull)
   */
  private Boolean countryNameIsnull;
  /**
   * 全部国家的名称 比较(isnotnull)
   */
  private Boolean countryNameIsnotnull;

  /**
   * 全部国家(范围搜索)
   */
  private List<Long> countryInList;

  /**
   * 全部店铺
   */
  private Long shop;

  /**
   * 全部店铺 比较(eq)
   */
  private Long shopEq;
  /**
   * 全部店铺 比较(neq)
   */
  private Long shopNeq;
  /**
   * 全部店铺 比较(gt)
   */
  private Long shopGt;
  /**
   * 全部店铺 比较(gte)
   */
  private Long shopGte;
  /**
   * 全部店铺 比较(lt)
   */
  private Long shopLt;
  /**
   * 全部店铺 比较(lte)
   */
  private Long shopLte;
  /**
   * 全部店铺 比较(contains)
   */
  private Long shopContains;
  /**
   * 全部店铺 比较(notcontains)
   */
  private Long shopNotcontains;
  /**
   * 全部店铺 比较(startswith)
   */
  private Long shopStartswith;
  /**
   * 全部店铺 比较(endswith)
   */
  private Long shopEndswith;
  /**
   * 全部店铺 比较(isnull)
   */
  private Boolean shopIsnull;
  /**
   * 全部店铺 比较(isnotnull)
   */
  private Boolean shopIsnotnull;
  /**
   * 全部店铺的名称 比较(eq)
   */
  private String shopShopNameEq;
  /**
   * 全部店铺的名称 比较(neq)
   */
  private String shopShopNameNeq;
  /**
   * 全部店铺的名称 比较(gt)
   */
  private String shopShopNameGt;
  /**
   * 全部店铺的名称 比较(gte)
   */
  private String shopShopNameGte;
  /**
   * 全部店铺的名称 比较(lt)
   */
  private String shopShopNameLt;
  /**
   * 全部店铺的名称 比较(lte)
   */
  private String shopShopNameLte;
  /**
   * 全部店铺的名称 比较(contains)
   */
  private String shopShopNameContains;
  /**
   * 全部店铺的名称 比较(notcontains)
   */
  private String shopShopNameNotcontains;
  /**
   * 全部店铺的名称 比较(startswith)
   */
  private String shopShopNameStartswith;
  /**
   * 全部店铺的名称 比较(endswith)
   */
  private String shopShopNameEndswith;
  /**
   * 全部店铺的名称 比较(isnull)
   */
  private Boolean shopShopNameIsnull;
  /**
   * 全部店铺的名称 比较(isnotnull)
   */
  private Boolean shopShopNameIsnotnull;

  /**
   * 全部店铺(范围搜索)
   */
  private List<Long> shopInList;

  /**
   * 供应商
   */
  private Long supply;

  /**
   * 供应商 比较(eq)
   */
  private Long supplyEq;
  /**
   * 供应商 比较(neq)
   */
  private Long supplyNeq;
  /**
   * 供应商 比较(gt)
   */
  private Long supplyGt;
  /**
   * 供应商 比较(gte)
   */
  private Long supplyGte;
  /**
   * 供应商 比较(lt)
   */
  private Long supplyLt;
  /**
   * 供应商 比较(lte)
   */
  private Long supplyLte;
  /**
   * 供应商 比较(contains)
   */
  private Long supplyContains;
  /**
   * 供应商 比较(notcontains)
   */
  private Long supplyNotcontains;
  /**
   * 供应商 比较(startswith)
   */
  private Long supplyStartswith;
  /**
   * 供应商 比较(endswith)
   */
  private Long supplyEndswith;
  /**
   * 供应商 比较(isnull)
   */
  private Boolean supplyIsnull;
  /**
   * 供应商 比较(isnotnull)
   */
  private Boolean supplyIsnotnull;
  /**
   * 供应商的供应商简称 比较(eq)
   */
  private String supplySupplierNameEq;
  /**
   * 供应商的供应商简称 比较(neq)
   */
  private String supplySupplierNameNeq;
  /**
   * 供应商的供应商简称 比较(gt)
   */
  private String supplySupplierNameGt;
  /**
   * 供应商的供应商简称 比较(gte)
   */
  private String supplySupplierNameGte;
  /**
   * 供应商的供应商简称 比较(lt)
   */
  private String supplySupplierNameLt;
  /**
   * 供应商的供应商简称 比较(lte)
   */
  private String supplySupplierNameLte;
  /**
   * 供应商的供应商简称 比较(contains)
   */
  private String supplySupplierNameContains;
  /**
   * 供应商的供应商简称 比较(notcontains)
   */
  private String supplySupplierNameNotcontains;
  /**
   * 供应商的供应商简称 比较(startswith)
   */
  private String supplySupplierNameStartswith;
  /**
   * 供应商的供应商简称 比较(endswith)
   */
  private String supplySupplierNameEndswith;
  /**
   * 供应商的供应商简称 比较(isnull)
   */
  private Boolean supplySupplierNameIsnull;
  /**
   * 供应商的供应商简称 比较(isnotnull)
   */
  private Boolean supplySupplierNameIsnotnull;

  /**
   * 供应商(范围搜索)
   */
  private List<Long> supplyInList;

  /**
   * 加急
   */
  private String urgent;

  /**
   * 加急 比较(eq)
   */
  private String urgentEq;
  /**
   * 加急 比较(neq)
   */
  private String urgentNeq;
  /**
   * 加急 比较(gt)
   */
  private String urgentGt;
  /**
   * 加急 比较(gte)
   */
  private String urgentGte;
  /**
   * 加急 比较(lt)
   */
  private String urgentLt;
  /**
   * 加急 比较(lte)
   */
  private String urgentLte;
  /**
   * 加急 比较(contains)
   */
  private String urgentContains;
  /**
   * 加急 比较(notcontains)
   */
  private String urgentNotcontains;
  /**
   * 加急 比较(startswith)
   */
  private String urgentStartswith;
  /**
   * 加急 比较(endswith)
   */
  private String urgentEndswith;
  /**
   * 加急 比较(isnull)
   */
  private Boolean urgentIsnull;
  /**
   * 加急 比较(isnotnull)
   */
  private Boolean urgentIsnotnull;

  /**
   * 加急(精确搜索)
   */
  private List<String> urgentInList;

  /**
   * 关联加工计划
   */
  private String manPlan;

  /**
   * 关联加工计划 比较(eq)
   */
  private String manPlanEq;
  /**
   * 关联加工计划 比较(neq)
   */
  private String manPlanNeq;
  /**
   * 关联加工计划 比较(gt)
   */
  private String manPlanGt;
  /**
   * 关联加工计划 比较(gte)
   */
  private String manPlanGte;
  /**
   * 关联加工计划 比较(lt)
   */
  private String manPlanLt;
  /**
   * 关联加工计划 比较(lte)
   */
  private String manPlanLte;
  /**
   * 关联加工计划 比较(contains)
   */
  private String manPlanContains;
  /**
   * 关联加工计划 比较(notcontains)
   */
  private String manPlanNotcontains;
  /**
   * 关联加工计划 比较(startswith)
   */
  private String manPlanStartswith;
  /**
   * 关联加工计划 比较(endswith)
   */
  private String manPlanEndswith;
  /**
   * 关联加工计划 比较(isnull)
   */
  private Boolean manPlanIsnull;
  /**
   * 关联加工计划 比较(isnotnull)
   */
  private Boolean manPlanIsnotnull;

  /**
   * 关联加工计划(精确搜索)
   */
  private List<String> manPlanInList;

  /**
   * 产品类型
   */
  private String proType;

  /**
   * 产品类型 比较(eq)
   */
  private String proTypeEq;
  /**
   * 产品类型 比较(neq)
   */
  private String proTypeNeq;
  /**
   * 产品类型 比较(gt)
   */
  private String proTypeGt;
  /**
   * 产品类型 比较(gte)
   */
  private String proTypeGte;
  /**
   * 产品类型 比较(lt)
   */
  private String proTypeLt;
  /**
   * 产品类型 比较(lte)
   */
  private String proTypeLte;
  /**
   * 产品类型 比较(contains)
   */
  private String proTypeContains;
  /**
   * 产品类型 比较(notcontains)
   */
  private String proTypeNotcontains;
  /**
   * 产品类型 比较(startswith)
   */
  private String proTypeStartswith;
  /**
   * 产品类型 比较(endswith)
   */
  private String proTypeEndswith;
  /**
   * 产品类型 比较(isnull)
   */
  private Boolean proTypeIsnull;
  /**
   * 产品类型 比较(isnotnull)
   */
  private Boolean proTypeIsnotnull;

  /**
   * 产品类型(精确搜索)
   */
  private List<String> proTypeInList;

  /**
   * 是否有 附件
   */
  private Boolean file;

  /**
   * 最早更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeStart;

  /**
   * 最晚更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeEnd;

  /**
   * 更新时间 比较(eq)
   */
  private Date lastUpdateTimeEq;
  /**
   * 更新时间 比较(neq)
   */
  private Date lastUpdateTimeNeq;
  /**
   * 更新时间 比较(gt)
   */
  private Date lastUpdateTimeGt;
  /**
   * 更新时间 比较(gte)
   */
  private Date lastUpdateTimeGte;
  /**
   * 更新时间 比较(lt)
   */
  private Date lastUpdateTimeLt;
  /**
   * 更新时间 比较(lte)
   */
  private Date lastUpdateTimeLte;
  /**
   * 更新时间 比较(contains)
   */
  private Date lastUpdateTimeContains;
  /**
   * 更新时间 比较(notcontains)
   */
  private Date lastUpdateTimeNotcontains;
  /**
   * 更新时间 比较(startswith)
   */
  private Date lastUpdateTimeStartswith;
  /**
   * 更新时间 比较(endswith)
   */
  private Date lastUpdateTimeEndswith;
  /**
   * 更新时间 比较(isnull)
   */
  private Boolean lastUpdateTimeIsnull;
  /**
   * 更新时间 比较(isnotnull)
   */
  private Boolean lastUpdateTimeIsnotnull;

  /**
   * 更新人
   */
  private Long lastUpdateUser;

  /**
   * 最小更新人
   */
  private Long lastUpdateUserMin;

  /**
   * 最大更新人
   */
  private Long lastUpdateUserMax;

  /**
   * 更新人 比较(eq)
   */
  private Long lastUpdateUserEq;
  /**
   * 更新人 比较(neq)
   */
  private Long lastUpdateUserNeq;
  /**
   * 更新人 比较(gt)
   */
  private Long lastUpdateUserGt;
  /**
   * 更新人 比较(gte)
   */
  private Long lastUpdateUserGte;
  /**
   * 更新人 比较(lt)
   */
  private Long lastUpdateUserLt;
  /**
   * 更新人 比较(lte)
   */
  private Long lastUpdateUserLte;
  /**
   * 更新人 比较(contains)
   */
  private Long lastUpdateUserContains;
  /**
   * 更新人 比较(notcontains)
   */
  private Long lastUpdateUserNotcontains;
  /**
   * 更新人 比较(startswith)
   */
  private Long lastUpdateUserStartswith;
  /**
   * 更新人 比较(endswith)
   */
  private Long lastUpdateUserEndswith;
  /**
   * 更新人 比较(isnull)
   */
  private Boolean lastUpdateUserIsnull;
  /**
   * 更新人 比较(isnotnull)
   */
  private Boolean lastUpdateUserIsnotnull;

  /**
   * 状态
   */
  private String status;

  /**
   * 状态 比较(eq)
   */
  private String statusEq;
  /**
   * 状态 比较(neq)
   */
  private String statusNeq;
  /**
   * 状态 比较(gt)
   */
  private String statusGt;
  /**
   * 状态 比较(gte)
   */
  private String statusGte;
  /**
   * 状态 比较(lt)
   */
  private String statusLt;
  /**
   * 状态 比较(lte)
   */
  private String statusLte;
  /**
   * 状态 比较(contains)
   */
  private String statusContains;
  /**
   * 状态 比较(notcontains)
   */
  private String statusNotcontains;
  /**
   * 状态 比较(startswith)
   */
  private String statusStartswith;
  /**
   * 状态 比较(endswith)
   */
  private String statusEndswith;
  /**
   * 状态 比较(isnull)
   */
  private Boolean statusIsnull;
  /**
   * 状态 比较(isnotnull)
   */
  private Boolean statusIsnotnull;

  /**
   * 状态(精确搜索)
   */
  private List<String> statusInList;

  /**
   * 已采购数量
   */
  private Long quantityPurchased;

  /**
   * 最小已采购数量
   */
  private Long quantityPurchasedMin;

  /**
   * 最大已采购数量
   */
  private Long quantityPurchasedMax;

  /**
   * 已采购数量 比较(eq)
   */
  private Long quantityPurchasedEq;
  /**
   * 已采购数量 比较(neq)
   */
  private Long quantityPurchasedNeq;
  /**
   * 已采购数量 比较(gt)
   */
  private Long quantityPurchasedGt;
  /**
   * 已采购数量 比较(gte)
   */
  private Long quantityPurchasedGte;
  /**
   * 已采购数量 比较(lt)
   */
  private Long quantityPurchasedLt;
  /**
   * 已采购数量 比较(lte)
   */
  private Long quantityPurchasedLte;
  /**
   * 已采购数量 比较(contains)
   */
  private Long quantityPurchasedContains;
  /**
   * 已采购数量 比较(notcontains)
   */
  private Long quantityPurchasedNotcontains;
  /**
   * 已采购数量 比较(startswith)
   */
  private Long quantityPurchasedStartswith;
  /**
   * 已采购数量 比较(endswith)
   */
  private Long quantityPurchasedEndswith;
  /**
   * 已采购数量 比较(isnull)
   */
  private Boolean quantityPurchasedIsnull;
  /**
   * 已采购数量 比较(isnotnull)
   */
  private Boolean quantityPurchasedIsnotnull;

  /**
   * 创建人
   */
  private Long createName;

  /**
   * 创建人 比较(eq)
   */
  private Long createNameEq;
  /**
   * 创建人 比较(neq)
   */
  private Long createNameNeq;
  /**
   * 创建人 比较(gt)
   */
  private Long createNameGt;
  /**
   * 创建人 比较(gte)
   */
  private Long createNameGte;
  /**
   * 创建人 比较(lt)
   */
  private Long createNameLt;
  /**
   * 创建人 比较(lte)
   */
  private Long createNameLte;
  /**
   * 创建人 比较(contains)
   */
  private Long createNameContains;
  /**
   * 创建人 比较(notcontains)
   */
  private Long createNameNotcontains;
  /**
   * 创建人 比较(startswith)
   */
  private Long createNameStartswith;
  /**
   * 创建人 比较(endswith)
   */
  private Long createNameEndswith;
  /**
   * 创建人 比较(isnull)
   */
  private Boolean createNameIsnull;
  /**
   * 创建人 比较(isnotnull)
   */
  private Boolean createNameIsnotnull;
  /**
   * 创建人的显示用户名 比较(eq)
   */
  private String createNameNameEq;
  /**
   * 创建人的显示用户名 比较(neq)
   */
  private String createNameNameNeq;
  /**
   * 创建人的显示用户名 比较(gt)
   */
  private String createNameNameGt;
  /**
   * 创建人的显示用户名 比较(gte)
   */
  private String createNameNameGte;
  /**
   * 创建人的显示用户名 比较(lt)
   */
  private String createNameNameLt;
  /**
   * 创建人的显示用户名 比较(lte)
   */
  private String createNameNameLte;
  /**
   * 创建人的显示用户名 比较(contains)
   */
  private String createNameNameContains;
  /**
   * 创建人的显示用户名 比较(notcontains)
   */
  private String createNameNameNotcontains;
  /**
   * 创建人的显示用户名 比较(startswith)
   */
  private String createNameNameStartswith;
  /**
   * 创建人的显示用户名 比较(endswith)
   */
  private String createNameNameEndswith;
  /**
   * 创建人的显示用户名 比较(isnull)
   */
  private Boolean createNameNameIsnull;
  /**
   * 创建人的显示用户名 比较(isnotnull)
   */
  private Boolean createNameNameIsnotnull;

  /**
   * 创建人(范围搜索)
   */
  private List<Long> createNameInList;

  /**
   * 创建人(模糊搜索)
   */
  private String createName2;

  /**
   * 创建人 比较(eq)
   */
  private String createName2Eq;
  /**
   * 创建人 比较(neq)
   */
  private String createName2Neq;
  /**
   * 创建人 比较(gt)
   */
  private String createName2Gt;
  /**
   * 创建人 比较(gte)
   */
  private String createName2Gte;
  /**
   * 创建人 比较(lt)
   */
  private String createName2Lt;
  /**
   * 创建人 比较(lte)
   */
  private String createName2Lte;
  /**
   * 创建人 比较(contains)
   */
  private String createName2Contains;
  /**
   * 创建人 比较(notcontains)
   */
  private String createName2Notcontains;
  /**
   * 创建人 比较(startswith)
   */
  private String createName2Startswith;
  /**
   * 创建人 比较(endswith)
   */
  private String createName2Endswith;
  /**
   * 创建人 比较(isnull)
   */
  private Boolean createName2Isnull;
  /**
   * 创建人 比较(isnotnull)
   */
  private Boolean createName2Isnotnull;

  /**
   * 创建人(精确搜索)
   */
  private List<String> createName2InList;

  /**
   * 采购仓库
   */
  private Long purchaseWare;

  /**
   * 采购仓库 比较(eq)
   */
  private Long purchaseWareEq;
  /**
   * 采购仓库 比较(neq)
   */
  private Long purchaseWareNeq;
  /**
   * 采购仓库 比较(gt)
   */
  private Long purchaseWareGt;
  /**
   * 采购仓库 比较(gte)
   */
  private Long purchaseWareGte;
  /**
   * 采购仓库 比较(lt)
   */
  private Long purchaseWareLt;
  /**
   * 采购仓库 比较(lte)
   */
  private Long purchaseWareLte;
  /**
   * 采购仓库 比较(contains)
   */
  private Long purchaseWareContains;
  /**
   * 采购仓库 比较(notcontains)
   */
  private Long purchaseWareNotcontains;
  /**
   * 采购仓库 比较(startswith)
   */
  private Long purchaseWareStartswith;
  /**
   * 采购仓库 比较(endswith)
   */
  private Long purchaseWareEndswith;
  /**
   * 采购仓库 比较(isnull)
   */
  private Boolean purchaseWareIsnull;
  /**
   * 采购仓库 比较(isnotnull)
   */
  private Boolean purchaseWareIsnotnull;
  /**
   * 采购仓库的采购单号 比较(eq)
   */
  private String purchaseWarePurchaseOrderCodeEq;
  /**
   * 采购仓库的采购单号 比较(neq)
   */
  private String purchaseWarePurchaseOrderCodeNeq;
  /**
   * 采购仓库的采购单号 比较(gt)
   */
  private String purchaseWarePurchaseOrderCodeGt;
  /**
   * 采购仓库的采购单号 比较(gte)
   */
  private String purchaseWarePurchaseOrderCodeGte;
  /**
   * 采购仓库的采购单号 比较(lt)
   */
  private String purchaseWarePurchaseOrderCodeLt;
  /**
   * 采购仓库的采购单号 比较(lte)
   */
  private String purchaseWarePurchaseOrderCodeLte;
  /**
   * 采购仓库的采购单号 比较(contains)
   */
  private String purchaseWarePurchaseOrderCodeContains;
  /**
   * 采购仓库的采购单号 比较(notcontains)
   */
  private String purchaseWarePurchaseOrderCodeNotcontains;
  /**
   * 采购仓库的采购单号 比较(startswith)
   */
  private String purchaseWarePurchaseOrderCodeStartswith;
  /**
   * 采购仓库的采购单号 比较(endswith)
   */
  private String purchaseWarePurchaseOrderCodeEndswith;
  /**
   * 采购仓库的采购单号 比较(isnull)
   */
  private Boolean purchaseWarePurchaseOrderCodeIsnull;
  /**
   * 采购仓库的采购单号 比较(isnotnull)
   */
  private Boolean purchaseWarePurchaseOrderCodeIsnotnull;

  /**
   * 采购仓库(范围搜索)
   */
  private List<Long> purchaseWareInList;

  /**
   * 表单名称
   */
  private String formName;

  /**
   * 工作流状态
   */
  private Integer wfStatus;
}
